package Day28;

import java.util.Arrays;

/**
 * ----------------------------------------------------------------------------------
 * 题目：
 *      给你一个整数数组 nums，将 nums 中的的所有偶数元素移动到数组的前面，后跟所有奇数元素。
 *      返回满足此条件的 任一数组 作为答案。
 * ----------------------------------------------------------------------------------
 * 示例：
 *
 *      输入：nums = [3,1,2,4]
 *      输出：[2,4,3,1]
 *      解释：[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
 * ----------------------------------------------------------------------------------
 * 方法：
 *      双指针
 * ----------------------------------------------------------------------------------
 */

class Solution {
    public static void main(String[] args) {
        int[] nums = new int[]{3,1,2,4};
        System.out.println(Arrays.toString(sortArrayByParity(nums)));
    }
    public static int[] sortArrayByParity(int[] nums) {
        int i=0;
        int j=nums.length-1;
        while(i<j){
            while(i<nums.length&&nums[i]%2==0){
                i++;
            }
            while(j>=0&&nums[j]%2!=0){
                j--;
            }
            if(i<j){
                int tmp = nums[i];
                nums[i]=nums[j];
                nums[j]=tmp;
                i++;
                j--;
            }
        }
        return nums;
    }
}